1. Technical Field
Embodiments of the invention relate to a link interface technique including data indicator symbols.
2. Background Art
Various encoding techniques have been used in transmitting data. One commonly used technique is an 8B/10B code in which 8-bit data symbols are mapped to 10-bit encoded symbols. In 8B/10B encoding, there are as many 1's as 0's in a string of two symbols and restrictions on the number of 1's and 0's in a row. This leads to DC balance, bounded disparity, and enough 1 to 0 and 0 to 1 transitions to allow clock recovery. Special symbols (control characters) may be used to indicate such things as end-of-frame, start-of-packet, link idle, skip. In 8B/10B encoding, there is no conflict between data and control characters. That is, data will never be represented by the same string of 10 bits as one of the control characters.
An advantage of the 8B/10B encoding is that there is no conflict between data and control characters. This is because the 8B/10B algorithm does not encode 8-bit data into some of the 1024 possible 10-bit combinations. The control characters are among the 10-bit combinations that are not used for representing 8-bit data. A disadvantage of the 8B/10B encoding is that it uses two extra bits to convey data. That can result in a substantial decrease in effective available bandwidth as compared to a technique in which 8 bits are represented with fewer than 10 bits.
PCI Express® (PCI-E or PCIe) is a input/output (I/O) interconnect that uses 8B/10B encoding. A PCI Express® Base Specification Revision 2.0, Dec. 20, 2006, is provided by the PCI-SIG®.
Special symbols, referred to as K-codes, used in PCIe 2.5 GT/s and 5 GT/s modes of operation as shown in the Table 1 as follows (from section 4.2.1.2 of the PCI Express® Base Specification Revision 2.0, Dec. 20, 2006).
TABLE 1Special Symbols of PCI Express Revision 2.0EncodingSymbolNameDescriptionK28.5COMCommaUsed for Lane and Linkinitialization and managementK27.7STPStart TLPMarks the start of a TransactionLayer PacketK28.2SDPStart DLLPMarks the Start of a Data LinkLayerK29.7ENDEndMarks the end of a TransactionLayer Packet or a Data Link LayerPacketK30.7EDBEnD BadMarks the end of a nullified TLPK23.7PADPadUsed in Framing and Link Widthand Lane ordering negotiationsK28.0SKPSkipUsed for compensating fordifferent bit rates for twocommunicating PortsK28.1FTSFast TrainingUsed within an Ordered Set to exitSequencefrom L0s to L0K28.3IDLIdleUsed in the Electrical Idle OrderedSet (EIOS)K28.4ReservedK28.6ReservedK28.7EIEElectrical IdleReserved in 2.5 GT/sExitUsed in the Electrical Idle ExitOrdered Set (EIEOS) and sentprior to sending FTS at speedsother than 2.5 GT/s